在請求資料時,收到的資料大多遵循 JSON 格式,因此我們需要將其轉換為其他格式,方便程式讀取與使用。
取得 API 回傳的資料
在 API 網站 中找到 36 小時預報的 API,並輸入授權碼。
按下 Execute 按鈕後,會得到回傳的 JSON 資料範例,依照這些資料來創建相對應的變數。
我們可以將回傳的 JSON 資料複製到具有格式整理功能的網站或軟體上,例如 json.parser.online.fr。
使用該網站查看 JSON 資料的最上層結構,然後依照結構建立相對應的 Swift 結構體。每個層次的資料可能是基本資料型別,也可能是 struct,這時需要繼續細分。
struct weatherData: Codable {
var success: String
var result: resultValue
var records: recordsValue
}
struct resultValue: Codable {
var resource_id: String
var fields: [fieldsValue]
}
持續依序建立
依照每一層結構,逐步解析。
透過逐層分析 JSON 資料並建立相對應的 Swift 結構,這樣的步驟可以有效地整理資料,為接下來的資料解析奠定基礎。以下為完整程式用來除錯。
import Foundation
import CoreText
struct weatherData: Codable {
var success: String
var result: resultValue
var records: recordsValue
}
struct resultValue: Codable {
var resource_id: String
var fields: [fieldsValue]
}
struct fieldsValue: Codable {
var id: String
var type: String
}
struct recordsValue: Codable {
var datasetDescription: String
var location: [locationValue]
}
struct locationValue: Codable {
var locationName: String
var weatherElement: [weatherElementValue]
}
struct weatherElementValue: Codable {
var elementName: String
var time: [timeValue]
}
struct timeValue: Codable {
var startTime: String
var endTime: String
var parameter: ParameterValue
}
struct ParameterValue: Codable {
var parameterName: String
var parameterUnit: String?
var parameterValue: String?
}
```![/images/emoticon/emoticon08.gif](/images/emoticon/emoticon08.gif)